<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 创建promise对象
        const p = new Promise(function(resolve,reject){
            setTimeout(()=>{
                resolve('用户数据')
                // reject('出错啦')
            },1000)
        })
        // 调用then方法 返回结果result也是一个promise对象 对象状态由函数的执行结果决定
        //1. 如果回调函数中返回的结果是 非promise类型的数据,result状态为成功，PromiseResult为该回调函数的返回值
        //2. 如果回调函数中返回的结果是promise类型的数据，result状态跟随回调函数的状态，PromiseResult为该回调函数的返回值
        //3. 抛出错误，result状态为rejected,PromiseResult为回调函数抛出的错误值
        // const result = p.then(success=>{
        //     console.log(p);//PromiseState:rejected
        //     // console.log(success);
            
        //     // 1.非promise对象
        //     // return 123;

        //     // 2.是promise对象
        //     // return new Promise((resolve,reject)=>{
        //     //     resolve('ok');//result: PromiseResult:'ok'
        //     //     // reject('err');//result: PromiseResult:'err'
        //     // })

        //     // 3.抛出错误
        //     throw new Error("出错啦！");//PromiseState: "rejected"  | PromiseResult: Error:
        // },err=>{
        //     console.log(p);//PromiseState:fulfilled
        //     console.warn(err);
        // })
        // console.log(result);

        // 链式调用 可以解决回调地狱的现象
        p.then(value=>{

        },reason=>{

        }).then(value=>{

        },reason=>{

        })
    </script>
</body>
</html>